<!DOCTYPE html>
<html>
<!--
Copyright 2009 The Closure Library Authors. All Rights Reserved.

Use of this source code is governed by the Apache License, Version 2.0.
See the COPYING file for details.
-->
<head>
<title>Closure - All JsUnit Tests</title>
<script src="closure/goog/base.js"></script>
<script src="alltests.js"></script>
<script>
goog.require('goog.userAgent.product');
goog.require('goog.testing.MultiTestRunner');
</script>
<link rel="stylesheet" href="closure/goog/css/multitestrunner.css" type="text/css">
<style>
h1 {
  font: normal x-large arial, helvetica, sans-serif;
  margin: 0;
}
p, form {
  font: normal small sans-serif;
  margin: 0;
}
#header {
  position: absolute;
  right: 10px;
  top: 13px;
}
#footer {
  margin-top: 8px;
}
a {
  text-decoration: none;
}
a:hover {
  text-decoration: underline;
}
.warning {
  font-size: 14px;
  font-weight: bold;
  width: 80%;
}
</style>
</head>
<body>

<script>
  if (goog.userAgent.product.CHROME &&
      window.location.toString().indexOf('file:') == 0) {
    document.write(
        '<div class="warning">' +
        'WARNING: Due to Chrome\'s security restrictions ' +
        'this test will not be able to load files off your local disk ' +
        'unless you start Chrome with:<br>' +
        '<code>--allow-file-access-from-files</code></div><br>');
  }
</script>

<h1>Closure - All JsUnit Tests</h1>
<p id="header"></p>
<div id="runner"></div>
<!--  Use a form so browser persists input values -->
<form id="footer" onsubmit="return false">
  Settings:<br>
  <input type="checkbox" name="hidepasses" id="hidepasses" checked>
  <label for="hidepasses">Hide passes</label><br>
  <input type="checkbox" name="parallel" id="parallel" checked>
  <label for="parallel">Run in parallel</label>
  <small>(timing stats not available if enabled)</small><br>
  <input type="text" name="filter" id="filter" value="">
  <label for="filter">Run only tests for path</label>
</form>
<script>
  var hidePassesInput = document.getElementById('hidepasses');
  var parallelInput = document.getElementById('parallel');
  var filterInput = document.getElementById('filter');

  function setFilterFunction() {
    var matchValue = filterInput.value || '';
    testRunner.setFilterFunction(function(testPath) {
      return testPath.indexOf(matchValue) > -1;
    });
  }

  // Create a test runner and render it.
  var testRunner = new goog.testing.MultiTestRunner()
      .setName(document.title)
      .setBasePath('./')
      .setPoolSize(parallelInput.checked ? 8 : 1)
      .setStatsBucketSizes(5, 500)
      .setHidePasses(hidePassesInput.checked)
      //.setVerbosePasses(true)
      .addTests(_allTests);
  testRunner.render(document.getElementById('runner'));

  goog.events.listen(hidePassesInput, 'click', function(e) {
    testRunner.setHidePasses(e.target.checked);
  });

  goog.events.listen(parallelInput, 'click', function(e) {
    testRunner.setPoolSize(e.target.checked ? 8 : 1);
  });

  goog.events.listen(filterInput, 'keyup', setFilterFunction);
  setFilterFunction();
</script>
</body>
</html>
